home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / in.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-12-19  |  2.9 KB  |  132 lines

  1. /*    @(#)in.h 1.1 86/09/27 SMI; from UCB 4.20 83/01/17    */
  2.  
  3.  
  4. /*
  5.  * Constants and structures defined by the internet system,
  6.  * Per RFC 790, September 1981.
  7.  */
  8.  
  9. /*
  10.  * Protocols
  11.  */
  12. #define    IPPROTO_ICMP        1        /* control message protocol */
  13. #define    IPPROTO_GGP        2        /* gateway^2 (deprecated) */
  14. #define    IPPROTO_TCP        6        /* tcp */
  15. #define    IPPROTO_PUP        12        /* pup */
  16. #define    IPPROTO_UDP        17        /* user datagram protocol */
  17. #define    IPPROTO_ND        77        /* UNOFFICIAL net disk proto */
  18. #define    IPPROTO_RAW        255        /* raw IP packet */
  19. #define    IPPROTO_MAX        256
  20.  
  21. /*
  22.  * Port/socket numbers: network standard functions
  23.  */
  24. #define    IPPORT_ECHO        7
  25. #define    IPPORT_DISCARD        9
  26. #define    IPPORT_SYSTAT        11
  27. #define    IPPORT_DAYTIME        13
  28. #define    IPPORT_NETSTAT        15
  29. #define    IPPORT_FTP        21
  30. #define    IPPORT_TELNET        23
  31. #define    IPPORT_SMTP        25
  32. #define    IPPORT_TIMESERVER    37
  33. #define    IPPORT_NAMESERVER    42
  34. #define    IPPORT_WHOIS        43
  35. #define    IPPORT_MTP        57
  36.  
  37. /*
  38.  * Port/socket numbers: host specific functions
  39.  */
  40. #define    IPPORT_TFTP        69
  41. #define    IPPORT_RJE        77
  42. #define    IPPORT_FINGER        79
  43. #define    IPPORT_TTYLINK        87
  44. #define    IPPORT_SUPDUP        95
  45.  
  46. /*
  47.  * UNIX TCP sockets
  48.  */
  49. #define    IPPORT_EXECSERVER    512
  50. #define    IPPORT_LOGINSERVER    513
  51. #define    IPPORT_CMDSERVER    514
  52. #define    IPPORT_EFSSERVER    520
  53.  
  54. /*
  55.  * UNIX UDP sockets
  56.  */
  57. #define    IPPORT_BIFFUDP        512
  58. #define    IPPORT_WHOSERVER    513
  59. #define    IPPORT_ROUTESERVER    520    /* 520+1 also used */
  60.  
  61. /*
  62.  * Ports < IPPORT_RESERVED are reserved for
  63.  * privileged processes (e.g. root).
  64.  */
  65. #define    IPPORT_RESERVED        1024
  66.  
  67. /*
  68.  * Link numbers
  69.  */
  70. #define    IMPLINK_IP        155
  71. #define    IMPLINK_LOWEXPER    156
  72. #define    IMPLINK_HIGHEXPER    158
  73.  
  74. /*
  75.  * Internet address (old style... should be updated)
  76.  */
  77. struct in_addr {
  78.     union {
  79.         struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
  80.         struct { u_short s_w1,s_w2; } S_un_w;
  81.         u_long S_addr;
  82.     } S_un;
  83. #define    s_addr    S_un.S_addr    /* can be used for most tcp & ip code */
  84. #define    s_host    S_un.S_un_b.s_b2    /* host on imp */
  85. #define    s_net    S_un.S_un_b.s_b1    /* network */
  86. #define    s_imp    S_un.S_un_w.s_w2    /* imp */
  87. #define    s_impno    S_un.S_un_b.s_b4    /* imp # */
  88. #define    s_lh    S_un.S_un_b.s_b3    /* logical host */
  89. };
  90.  
  91. /*
  92.  * Definitions of bits in internet address integers.
  93.  */
  94. #define    IN_CLASSA(i)        ((((long)(i))&0x80000000)==0)
  95. #define    IN_CLASSA_NET        0xff000000
  96. #define    IN_CLASSA_NSHIFT    24
  97. #define    IN_CLASSA_HOST        0x00ffffff
  98.  
  99. #define    IN_CLASSB(i)        ((((long)(i))&0xc0000000)==0x80000000)
  100. #define    IN_CLASSB_NET        0xffff0000
  101. #define    IN_CLASSB_NSHIFT    16
  102. #define    IN_CLASSB_HOST        0x0000ffff
  103.  
  104. #define    IN_CLASSC(i)        ((((long)(i))&0xc0000000)==0xc0000000)
  105. #define    IN_CLASSC_NET        0xffffff00
  106. #define    IN_CLASSC_NSHIFT    8
  107. #define    IN_CLASSC_HOST        0x000000ff
  108.  
  109. #define    INADDR_ANY    0x00000000
  110. #define INADDR1_ANY     0x000000ff
  111.  
  112. /*
  113.  * Socket address, internet style.
  114.  */
  115. struct sockaddr_in {
  116.     short    sin_family;
  117.     u_short    sin_port;
  118.     struct    in_addr sin_addr;
  119.     char    sin_zero[8];
  120. };
  121.  
  122. #if !defined(vax)
  123. /*
  124.  * Macros for number representation conversion.
  125.  */
  126. #define    ntohl(x)    (x)
  127. #define    ntohs(x)    (x)
  128. #define    htonl(x)    (x)
  129. #define    htons(x)    (x)
  130. #endif
  131.  
  132.